package com.gitee.zhanyao.single.system.entity;

import lombok.Data;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户角色
 * 添加用户角色的情况：
 * 1、将用户添加到岗位时
 * 2、将用户添加到用户组时
 * 3、用户添加角色时
 * 4、角色添加用户时
 * 取用户角色时，需要去重
 */
@Data
@Entity
@Table
public class SysUserRole implements Serializable {

    /**
     * 主键
     */
    @Id
    @GeneratedValue(generator = "uuidStrategy")
    @GenericGenerator(name = "uuidStrategy", strategy = "uuid")
    private String id;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 创建人主键
     */
    private String createUserId;
    /**
     * 创建人姓名
     */
    private String createUserName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 更新人主键
     */
    private String updateUserId;
    /**
     * 更新人姓名
     */
    private String updateUserName;
    /**
     * 用户
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id")
    private SysUser sysUser;
    /**
     * 角色
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "role_id")
    private SysRole sysRole;
    /**
     * 用户组
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "group_id")
    private SysUserGroup sysUserGroup;
}
